package com.zrwl.poscloud.xo.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zrwl.poscloud.base.entity.EmployeeAccount;
import com.zrwl.poscloud.base.superI.SuperService;
import com.zrwl.poscloud.xo.vo.EmployeeAccountVO;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 持卡人员账户 服务类
 *
 * @author 刘思童 AutoGenerate
 * @date 2021-07-26
 */
public interface EmployeeAccountService extends SuperService<EmployeeAccount> {

    public IPage<EmployeeAccountVO> getPageList(EmployeeAccountVO employeeAccountVO);

    public List<EmployeeAccount> getAllList(EmployeeAccountVO employeeAccountVO);

    public String add(EmployeeAccountVO employeeAccountVO);

    public boolean edit(EmployeeAccountVO employeeAccountVO);

    public String delete(EmployeeAccountVO employeeAccountVO);

    public EmployeeAccount customizeSelect(EmployeeAccountVO employeeAccountVO);

    /**
     * 创建账户 有的话就不创建
     */
    public EmployeeAccountVO employeeAccountBuild(EmployeeAccountVO employeeAccountVO);

    /**
     * 查找账户 forupdate行锁
     */
    public EmployeeAccountVO employeeAccountFind(EmployeeAccountVO employeeAccountVO);

    /**
     * 创建电子钱包账户(判重)
     *
     * @param row         当前数据
     * @param employeeUid 人员id
     * @return EmployeeAccountVO 账户余额
     */
    public EmployeeAccountVO employeeAccountIsItEffective(Map<String, String> row, String employeeUid);

    /**
     * 定时添加余额不足提醒
     */
    public void checkAccountBalance(double balance);

    public List<EmployeeAccountVO> getEmployeeAccountInfo(String employeeUid);
    public Map<String,Double>getAllAccountBalances(String employeeUid);
    public Date getSubsidyTime(String employeeUid);
}
